/**
 * @Author wangyl
 * @E-mail wangyl0629@foxmail.com
 **/
package com.wyl.xue.admin.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wyl.xue.admin.system.mybatis.entity.SystemMenu;
import com.wyl.xue.admin.system.vo.MenuInfoVo;
import com.wyl.xue.admin.system.vo.MenuTree;

import java.util.List;

public interface Menu {
    /**
     * @Description 添加菜单
     * @param menuInfoVo
     * @return void
     * @Date 2020/11/9 22:41
     * @Author wangyl
     * @Version V1.0
     */
    void addMenu(MenuInfoVo menuInfoVo);

    /**
     * @Description 删除菜单
     * @param id
     * @return void
     * @Date 2020/11/9 22:41
     * @Author wangyl
     * @Version V1.0
     */
    void deleteMenu(long id);

    /**
     * @Description 通过父节点获取菜单树
     * @param parenId
     * @return java.util.List<com.wyl.xue.admin.system.vo.MenuTree>
     * @Date 2020/11/9 22:41
     * @Author wangyl
     * @Version V1.0
     */
    List<MenuTree> getMenuTree(long parenId);

    /**
     * @Description 分页获取指定父节点下的菜单信息
     * @param parentId
     * @param size
     * @param page
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.wyl.xue.admin.system.mybatis.entity.SystemMenu>
     * @Date 2020/11/9 22:42
     * @Author wangyl
     * @Version V1.0
     */
    Page<SystemMenu> getSubmenuByParentIdForPage(long parentId, int page, int size);

    /**
     * @Description 获取排除功能外的菜单
     * @param parentId
     * @return java.util.List<com.wyl.xue.admin.system.vo.MenuTree>
     * @Date 2020/11/9 22:42
     * @Author wangyl
     * @Version V1.0
     */
    List<MenuTree> getMenuTreeExcludeFunctionMenu(long parentId);

    /**
     * @Description 更新菜单
     * @param systemMenu
     * @return void
     * @Date 2020/11/9 22:47
     * @Author wangyl
     * @Version V1.0
     */
    void updateMenu(SystemMenu systemMenu);

    /**
     * @Description 搜索菜单
     * @param menuInfoVo
     * @return java.util.List<com.wyl.xue.admin.system.mybatis.entity.SystemMenu>
     * @Date 2020/11/19 17:35
     * @Author wangyl
     * @Version V1.0
     */
    List<SystemMenu> searchMenu(MenuInfoVo menuInfoVo);
}
